package org.dydl.model.system;


import java.io.Serializable;
import java.sql.Timestamp;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * DELIVERY
 * 
 * @author 张华城
 * @version 1.0.0 2018-01-17
 */
@Entity
@Table(name = "delivery")
public class Delivery implements Serializable {
    /** 版本号 */
    private static final long serialVersionUID = 4834062877839843973L;

    /** 自增id */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    /** 送货单uuid */
    private String uuid;

    /** 送货单号 */
    private String deliveryNoteNo;

    /** 收货人 */
    private String consignee;

    /** 装运方式 */
    private String modeOfShipment;

    /** 装运条款 */
    private String shippingTerms;

    /** 邮寄地址 */
    private String mailingAddress;

    /** 发货日期 */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Timestamp deliverDate;

    /** 承运人 */
    private String carrier;

    /** 承运人电话 */
    private String carrierPhone;

    /** 签收人 */
    private String recipient;

    /** 签收时间 */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Timestamp signTime ;

    /** 状态：审核，已配载，已签收 */
    private Integer status = 0;
    
    /**
     * 获取自增id
     * 
     * @return 自增id
     */
    public Integer getId() {
        return this.id;
    }

    /**
     * 设置自增id
     * 
     * @param id
     *          自增id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取送货单uuid
     * 
     * @return 送货单uuid
     */
    public String getUuid() {
        return this.uuid;
    }

    /**
     * 设置送货单uuid
     * 
     * @param uuid
     *          送货单uuid
     */
    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    /**
     * 获取送货单号
     * 
     * @return 送货单号
     */
    public String getDeliveryNoteNo() {
        return this.deliveryNoteNo;
    }

    /**
     * 设置送货单号
     * 
     * @param deliveryNoteNo
     *          送货单号
     */
    public void setDeliveryNoteNo(String deliveryNoteNo) {
        this.deliveryNoteNo = deliveryNoteNo;
    }

    /**
     * 获取收货人
     * 
     * @return 收货人
     */
    public String getConsignee() {
        return this.consignee;
    }

    /**
     * 设置收货人
     * 
     * @param consignee
     *          收货人
     */
    public void setConsignee(String consignee) {
        this.consignee = consignee;
    }

    /**
     * 获取装运方式
     * 
     * @return 装运方式
     */
    public String getModeOfShipment() {
        return this.modeOfShipment;
    }

    /**
     * 设置装运方式
     * 
     * @param modeOfShipment
     *          装运方式
     */
    public void setModeOfShipment(String modeOfShipment) {
        this.modeOfShipment = modeOfShipment;
    }

    /**
     * 获取装运条款
     * 
     * @return 装运条款
     */
    public String getShippingTerms() {
        return this.shippingTerms;
    }

    /**
     * 设置装运条款
     * 
     * @param shippingTerms
     *          装运条款
     */
    public void setShippingTerms(String shippingTerms) {
        this.shippingTerms = shippingTerms;
    }

    /**
     * 获取邮寄地址
     * 
     * @return 邮寄地址
     */
    public String getMailingAddress() {
        return this.mailingAddress;
    }

    /**
     * 设置邮寄地址
     * 
     * @param mailingAddress
     *          邮寄地址
     */
    public void setMailingAddress(String mailingAddress) {
        this.mailingAddress = mailingAddress;
    }

    /**
     * 获取发货日期
     * 
     * @return 发货日期
     */
    public Timestamp getDeliverDate() {
        return this.deliverDate;
    }

    /**
     * 设置发货日期
     * 
     * @param deliverDate
     *          发货日期
     */
    public void setDeliverDate(Timestamp deliverDate) {
        this.deliverDate = deliverDate;
    }

    /**
     * 获取承运人
     * 
     * @return 承运人
     */
    public String getCarrier() {
        return this.carrier;
    }

    /**
     * 设置承运人
     * 
     * @param carrier
     *          承运人
     */
    public void setCarrier(String carrier) {
        this.carrier = carrier;
    }

    /**
     * 获取承运人电话
     * 
     * @return 承运人电话
     */
    public String getCarrierPhone() {
        return this.carrierPhone;
    }

    /**
     * 设置承运人电话
     * 
     * @param carrierPhone
     *          承运人电话
     */
    public void setCarrierPhone(String carrierPhone) {
        this.carrierPhone = carrierPhone;
    }

    /**
     * 获取签收人
     * 
     * @return 签收人
     */
    public String getRecipient() {
        return this.recipient;
    }

    /**
     * 设置签收人
     * 
     * @param recipient
     *          签收人
     */
    public void setRecipient(String recipient) {
        this.recipient = recipient;
    }

    /**
     * 获取签收时间
     * 
     * @return 签收时间
     */
    public Timestamp getSignTime() {
        return this.signTime;
    }

    /**
     * 设置签收时间
     * 
     * @param signTime
     *          签收时间
     */
    public void setSignTime(Timestamp signTime) {
        this.signTime = signTime;
    }

    /**
     * 获取状态：审核，已配载，已签收
     * 
     * @return 状态：审核
     */
    public Integer getStatus() {
        return this.status;
    }

    /**
     * 设置状态：审核，已配载，已签收
     * 
     * @param status
     *          状态：审核
     */
    public void setStatus(Integer status) {
        this.status = status;
    }
}